import '../../common/index.dart';

/// 学院页面控制器
/// 管理医学知识学习、课程、资讯等功能

class AcademyPageListC extends BaseGetXListController {
  // --------- 公开属性  --------- //

  // --------- 私有属性  --------- //

  // --------- 生命周期  --------- //

  // --------- 数据处理  --------- //

  // --------- 触发事件  --------- //
}

// class AcademyController extends BaseGetXController {
//   /// 刷新控制器
//   final RefreshController refreshController = RefreshController();

//   /// 轮播图列表
//   final RxList<BannerModel> banners = <BannerModel>[].obs;

//   /// 课程分类列表
//   final RxList<CategoryModel> categories = <CategoryModel>[].obs;

//   /// 推荐课程列表
//   final RxList<CourseModel> recommendedCourses = <CourseModel>[].obs;

//   /// 最新资讯列表
//   final RxList<NewsModel> latestNews = <NewsModel>[].obs;

//   /// 学习进度
//   final Rx<StudyProgressModel> studyProgress = StudyProgressModel().obs;

//   /// 是否加载中
//   final RxBool isLoading = false.obs;

//   @override
//   void onInit() {
//     super.onInit();
//     _initData();
//   }

//   @override
//   void onClose() {
//     refreshController.dispose();
//     super.onClose();
//   }

//   /// 初始化数据
//   void _initData() {
//     loadBanners();
//     loadCategories();
//     loadRecommendedCourses();
//     loadLatestNews();
//     loadStudyProgress();
//   }

//   /// 加载轮播图
//   Future<void> loadBanners() async {
//     try {
//       // 实现 MedicalApis.getAcademyBanners API 调用
//       // final response = await MedicalApis.getAcademyBanners();
//       //
//       // if (response.isSuccess && response.data != null) {
//       //   final List<dynamic> bannersData = response.data['banners'] ?? [];
//       //   banners.value = bannersData
//       //       .map((item) => BannerModel.fromJson(item))
//       //       .toList();
//       // } else {
//       //   // 使用模拟数据
//       //   _loadMockBanners();
//       // }

//       // 暂时直接使用模拟数据
//       _loadMockBanners();
//     } catch (e) {
//       debugLog('加载轮播图失败: $e');
//       _loadMockBanners();
//     }
//   }

//   /// 加载模拟轮播图数据
//   void _loadMockBanners() {
//     banners.value = [
//       BannerModel(
//         id: '1',
//         title: '中医药学基础课程',
//         imageUrl: globalConfig.testImageUrl,
//         linkUrl: '/course/1',
//         type: 'course',
//       ),
//       BannerModel(
//         id: '2',
//         title: '临床诊疗规范培训',
//         imageUrl: globalConfig.testImageUrl,
//         linkUrl: '/course/2',
//         type: 'course',
//       ),
//       BannerModel(
//         id: '3',
//         title: '医学前沿资讯',
//         imageUrl: globalConfig.testImageUrl,
//         linkUrl: '/news/1',
//         type: 'news',
//       ),
//     ];
//   }

//   /// 加载课程分类
//   Future<void> loadCategories() async {
//     try {
//       // TODO: 实现 MedicalApis.getCourseCategories API 调用
//       // final response = await MedicalApis.getCourseCategories();
//       //
//       // if (response.isSuccess && response.data != null) {
//       //   final List<dynamic> categoriesData = response.data['categories'] ?? [];
//       //   categories.value = categoriesData
//       //       .map((item) => CategoryModel.fromJson(item))
//       //       .toList();
//       // } else {
//       //   // 使用模拟数据
//       //   _loadMockCategories();
//       // }

//       // 暂时直接使用模拟数据
//       _loadMockCategories();
//     } catch (e) {
//       debugLog('加载课程分类失败: $e');
//       _loadMockCategories();
//     }
//   }

//   /// 加载模拟分类数据
//   void _loadMockCategories() {
//     categories.value = [
//       CategoryModel(
//         id: '1',
//         name: '中医基础',
//         icon: Icons.local_hospital,
//         courseCount: 25,
//       ),
//       CategoryModel(
//         id: '2',
//         name: '临床医学',
//         icon: Icons.medical_services,
//         courseCount: 18,
//       ),
//       CategoryModel(
//         id: '3',
//         name: '药学知识',
//         icon: Icons.medication,
//         courseCount: 32,
//       ),
//       CategoryModel(
//         id: '4',
//         name: '护理学',
//         icon: Icons.healing,
//         courseCount: 15,
//       ),
//     ];
//   }

//   /// 加载推荐课程
//   Future<void> loadRecommendedCourses() async {
//     try {
//       // TODO: 实现 MedicalApis.getRecommendedCourses API 调用
//       // final response = await MedicalApis.getRecommendedCourses();
//       //
//       // if (response.isSuccess && response.data != null) {
//       //   final List<dynamic> coursesData = response.data['courses'] ?? [];
//       //   recommendedCourses.value = coursesData
//       //       .map((item) => CourseModel.fromJson(item))
//       //       .toList();
//       // } else {
//       //   // 使用模拟数据
//       //   _loadMockCourses();
//       // }

//       // 暂时直接使用模拟数据
//       _loadMockCourses();
//     } catch (e) {
//       debugLog('加载推荐课程失败: $e');
//       _loadMockCourses();
//     }
//   }

//   /// 加载模拟课程数据
//   void _loadMockCourses() {
//     recommendedCourses.value = [
//       CourseModel(
//         id: '1',
//         title: '中医诊断学基础',
//         coverUrl: globalConfig.testImageUrl,
//         instructor: '张教授',
//         rating: 4.8,
//         price: 199.0,
//         isFree: false,
//         duration: 120,
//         studentCount: 1250,
//       ),
//       CourseModel(
//         id: '2',
//         title: '针灸推拿技术',
//         coverUrl: globalConfig.testImageUrl,
//         instructor: '李医师',
//         rating: 4.9,
//         price: 0.0,
//         isFree: true,
//         duration: 90,
//         studentCount: 2100,
//       ),
//       CourseModel(
//         id: '3',
//         title: '方剂学精讲',
//         coverUrl: globalConfig.testImageUrl,
//         instructor: '王教授',
//         rating: 4.7,
//         price: 299.0,
//         isFree: false,
//         duration: 150,
//         studentCount: 980,
//       ),
//     ];
//   }

//   /// 加载最新资讯
//   Future<void> loadLatestNews() async {
//     try {
//       // TODO: 实现 MedicalApis.getLatestNews API 调用
//       // final response = await MedicalApis.getLatestNews();
//       //
//       // if (response.isSuccess && response.data != null) {
//       //   final List<dynamic> newsData = response.data['news'] ?? [];
//       //   latestNews.value = newsData
//       //       .map((item) => NewsModel.fromJson(item))
//       //       .toList();
//       // } else {
//       //   // 使用模拟数据
//       //   _loadMockNews();
//       // }

//       // 暂时直接使用模拟数据
//       _loadMockNews();
//     } catch (e) {
//       debugLog('加载最新资讯失败: $e');
//       _loadMockNews();
//     }
//   }

//   /// 加载模拟资讯数据
//   void _loadMockNews() {
//     latestNews.value = [
//       NewsModel(
//         id: '1',
//         title: '国家中医药管理局发布新政策',
//         summary: '进一步推进中医药传承创新发展',
//         imageUrl: globalConfig.testImageUrl,
//         publishTime: DateTime.now().subtract(const Duration(hours: 2)),
//         readCount: 1520,
//       ),
//       NewsModel(
//         id: '2',
//         title: '中医药在疫情防控中的重要作用',
//         summary: '中西医结合治疗效果显著',
//         imageUrl: globalConfig.testImageUrl,
//         publishTime: DateTime.now().subtract(const Duration(hours: 6)),
//         readCount: 2340,
//       ),
//       NewsModel(
//         id: '3',
//         title: '全国中医药大会召开',
//         summary: '部署下一阶段中医药工作重点',
//         imageUrl: globalConfig.testImageUrl,
//         publishTime: DateTime.now().subtract(const Duration(days: 1)),
//         readCount: 890,
//       ),
//     ];
//   }

//   /// 加载学习进度
//   Future<void> loadStudyProgress() async {
//     try {
//       // TODO: 实现 MedicalApis.getStudyProgress API 调用
//       // final response = await MedicalApis.getStudyProgress();
//       //
//       // if (response.isSuccess && response.data != null) {
//       //   studyProgress.value = StudyProgressModel.fromJson(response.data);
//       // } else {
//       //   // 使用模拟数据
//       //   _loadMockProgress();
//       // }

//       // 暂时直接使用模拟数据
//       _loadMockProgress();
//     } catch (e) {
//       debugLog('加载学习进度失败: $e');

//       _loadMockProgress();
//     }
//   }

//   /// 加载模拟进度数据
//   void _loadMockProgress() {
//     studyProgress.value = StudyProgressModel(
//       completedCourses: 12,
//       studyHours: 85,
//       certificates: 3,
//       currentCourse: '中医诊断学基础',
//       progressPercent: 65,
//     );
//   }

//   /// 下拉刷新
//   Future<void> onRefresh() async {
//     try {
//       await Future.wait([
//         loadBanners(),
//         loadCategories(),
//         loadRecommendedCourses(),
//         loadLatestNews(),
//         loadStudyProgress(),
//       ]);
//       refreshController.refreshCompleted();
//     } catch (e) {
//       debugLog('刷新失败: $e');
//       refreshController.refreshFailed();
//     }
//   }

//   /// 轮播图点击
//   void onBannerTap(BannerModel banner) {
//     // TODO: 实现课程详情和资讯详情页面路由
//     // if (banner.type == 'course') {
//     //   Get.toNamed(
//     //     RouterIdConfig.courseDetail,
//     //     arguments: {'courseId': banner.linkUrl?.split('/').last},
//     //   );
//     // } else if (banner.type == 'news') {
//     //   Get.toNamed(
//     //     RouterIdConfig.newsDetail,
//     //     arguments: {'newsId': banner.linkUrl?.split('/').last},
//     //   );
//     // }
//     debugLog('轮播图点击: ${banner.title}');
//   }

//   /// 搜索点击
//   void onSearchTap() {
//     // TODO: 实现学院搜索页面路由
//     // Get.toNamed(RouterIdConfig.academySearch);
//     debugLog('打开搜索');
//   }

//   /// 我的课程点击
//   void onMyCourseTap() {
//     // TODO: 实现我的课程列表页面路由
//     // Get.toNamed(RouterIdConfig.myCourseList);
//     debugLog('打开我的课程');
//   }

//   /// 视频课程点击
//   void onVideoCourseTap() {
//     // TODO: 实现课程列表页面路由
//     // Get.toNamed(
//     //   RouterIdConfig.courseList,
//     //   arguments: {'type': 'video'},
//     // );
//     debugLog('打开视频课程');
//   }

//   /// 在线考试点击
//   void onExamTap() {
//     // TODO: 实现考试列表页面路由
//     // Get.toNamed(RouterIdConfig.examList);
//     debugLog('打开在线考试');
//   }

//   /// 学习资料点击
//   void onMaterialTap() {
//     // TODO: 实现学习资料列表页面路由
//     // Get.toNamed(RouterIdConfig.materialList);
//     debugLog('打开学习资料');
//   }

//   /// 培训活动点击
//   void onTrainingTap() {
//     // TODO: 实现培训列表页面路由
//     // Get.toNamed(RouterIdConfig.trainingList);
//     debugLog('打开培训活动');
//   }

//   /// 更多分类点击
//   void onMoreCategoriesTap() {
//     // TODO: 实现分类列表页面路由
//     // Get.toNamed(RouterIdConfig.categoryList);
//     debugLog('查看更多分类');
//   }

//   /// 分类点击
//   void onCategoryTap(CategoryModel category) {
//     // TODO: 实现课程列表页面路由
//     // Get.toNamed(
//     //   RouterIdConfig.courseList,
//     //   arguments: {'categoryId': category.id},
//     // );
//     debugLog('分类点击: ${category.name}');
//   }

//   /// 课程点击
//   void onCourseTap(CourseModel course) {
//     // TODO: 实现课程详情页面路由
//     // Get.toNamed(
//     //   RouterIdConfig.courseDetail,
//     //   arguments: {'courseId': course.id},
//     // );
//     debugLog('课程点击: ${course.title}');
//   }

//   /// 资讯点击
//   void onNewsTap(NewsModel news) {
//     // TODO: 实现资讯详情页面路由
//     // Get.toNamed(
//     //   RouterIdConfig.newsDetail,
//     //   arguments: {'newsId': news.id},
//     // );
//     debugLog('资讯点击: ${news.title}');
//   }

//   /// 查看更多课程
//   void onMoreCoursesTap() {
//     // TODO: 实现课程列表页面路由
//     // Get.toNamed(RouterIdConfig.courseList);
//     debugLog('查看更多课程');
//   }

//   /// 查看更多资讯
//   void onMoreNewsTap() {
//     // TODO: 实现资讯列表页面路由
//     // Get.toNamed(RouterIdConfig.newsList);
//     debugLog('查看更多资讯');
//   }

//   /// 我的学习点击
//   void onMyStudyTap() {
//     // TODO: 实现我的学习页面路由
//     // Get.toNamed(RouterIdConfig.myStudy);
//     debugLog('打开我的学习');
//   }

//   /// 格式化时间
//   String formatTime(DateTime? time) {
//     if (time == null) return '';

//     final now = DateTime.now();
//     final difference = now.difference(time);

//     if (difference.inMinutes < 1) {
//       return '刚刚';
//     } else if (difference.inMinutes < 60) {
//       return '${difference.inMinutes}分钟前';
//     } else if (difference.inHours < 24) {
//       return '${difference.inHours}小时前';
//     } else if (difference.inDays < 7) {
//       return '${difference.inDays}天前';
//     } else {
//       return '${time.month}/${time.day}';
//     }
//   }

//   /// 收藏课程
//   Future<void> favoriteCourse(String courseId, bool isFavorite) async {
//     try {
//       // TODO: 实现 MedicalApis.favoriteCourse API 调用
//       // final response = await MedicalApis.favoriteCourse(courseId, isFavorite);
//       //
//       // if (response.isSuccess) {
//       //   Fluttertoast.showToast(
//       //     msg: isFavorite ? '收藏成功' : '取消收藏成功',
//       //     toastLength: Toast.LENGTH_SHORT,
//       //     gravity: ToastGravity.CENTER,
//       //   );
//       // }

//       // 暂时直接显示成功消息
//       Fluttertoast.showToast(
//         msg: isFavorite ? '收藏成功' : '取消收藏成功',
//         toastLength: Toast.LENGTH_SHORT,
//         gravity: ToastGravity.CENTER,
//       );
//     } catch (e) {
//       debugLog('收藏操作失败: $e');
//     }
//   }

//   /// 报名课程
//   Future<void> enrollCourse(String courseId) async {
//     try {
//       // TODO: 实现 MedicalApis.enrollCourse API 调用
//       // final response = await MedicalApis.enrollCourse(courseId);
//       //
//       // if (response.isSuccess) {
//       //   Fluttertoast.showToast(
//       //     msg: '报名成功',
//       //     toastLength: Toast.LENGTH_SHORT,
//       //     gravity: ToastGravity.CENTER,
//       //   );
//       // }

//       // 暂时直接显示成功消息
//       Fluttertoast.showToast(
//         msg: '报名成功',
//         toastLength: Toast.LENGTH_SHORT,
//         gravity: ToastGravity.CENTER,
//       );
//     } catch (e) {
//       debugLog('报名失败: $e');
//     }
//   }

//   /// 开始学习
//   void startLearning(String courseId) {
//     // TODO: 实现课程播放器页面路由
//     // Get.toNamed(
//     //   RouterIdConfig.coursePlayer,
//     //   arguments: {'courseId': courseId},
//     // );
//     debugLog('开始学习课程: $courseId');
//   }

//   /// 分享课程
//   Future<void> shareCourse(CourseModel course) async {
//     try {
//       // 这里可以实现分享功能
//       Fluttertoast.showToast(
//         msg: '分享功能开发中',
//         toastLength: Toast.LENGTH_SHORT,
//         gravity: ToastGravity.CENTER,
//       );
//     } catch (e) {
//       debugLog('分享失败: $e');
//     }
//   }

//   /// 评价课程
//   void rateCourse(String courseId) {
//     // TODO: 实现课程评价页面路由
//     // Get.toNamed(
//     //   RouterIdConfig.courseRating,
//     //   arguments: {'courseId': courseId},
//     // );
//     debugLog('评价课程: $courseId');
//   }
// }

// /// 轮播图模型
// class BannerModel {
//   final String? id;
//   final String? title;
//   final String? imageUrl;
//   final String? linkUrl;
//   final String? type;

//   BannerModel({
//     this.id,
//     this.title,
//     this.imageUrl,
//     this.linkUrl,
//     this.type,
//   });

//   factory BannerModel.fromJson(Map<String, dynamic> json) {
//     return BannerModel(
//       id: json['id']?.toString(),
//       title: json['title']?.toString(),
//       imageUrl: json['image_url']?.toString(),
//       linkUrl: json['link_url']?.toString(),
//       type: json['type']?.toString(),
//     );
//   }

//   Map<String, dynamic> toJson() {
//     return {
//       'id': id,
//       'title': title,
//       'image_url': imageUrl,
//       'link_url': linkUrl,
//       'type': type,
//     };
//   }
// }

// /// 分类模型
// class CategoryModel {
//   final String? id;
//   final String? name;
//   final IconData? icon;
//   final int? courseCount;

//   CategoryModel({
//     this.id,
//     this.name,
//     this.icon,
//     this.courseCount,
//   });

//   factory CategoryModel.fromJson(Map<String, dynamic> json) {
//     return CategoryModel(
//       id: json['id']?.toString(),
//       name: json['name']?.toString(),
//       icon: _getIconFromString(json['icon']?.toString()),
//       courseCount: json['course_count'] is int
//           ? json['course_count']
//           : int.tryParse(json['course_count']?.toString() ?? '0'),
//     );
//   }

//   static IconData? _getIconFromString(String? iconName) {
//     switch (iconName) {
//       case 'local_hospital':
//         return Icons.local_hospital;
//       case 'medical_services':
//         return Icons.medical_services;
//       case 'medication':
//         return Icons.medication;
//       case 'healing':
//         return Icons.healing;
//       default:
//         return Icons.book_outlined;
//     }
//   }

//   Map<String, dynamic> toJson() {
//     return {
//       'id': id,
//       'name': name,
//       'icon': icon?.codePoint.toString(),
//       'course_count': courseCount,
//     };
//   }
// }

// /// 课程模型
// class CourseModel {
//   final String? id;
//   final String? title;
//   final String? coverUrl;
//   final String? instructor;
//   final double? rating;
//   final double? price;
//   final bool? isFree;
//   final int? duration;
//   final int? studentCount;

//   CourseModel({
//     this.id,
//     this.title,
//     this.coverUrl,
//     this.instructor,
//     this.rating,
//     this.price,
//     this.isFree,
//     this.duration,
//     this.studentCount,
//   });

//   factory CourseModel.fromJson(Map<String, dynamic> json) {
//     return CourseModel(
//       id: json['id']?.toString(),
//       title: json['title']?.toString(),
//       coverUrl: json['cover_url']?.toString(),
//       instructor: json['instructor']?.toString(),
//       rating: json['rating'] is double
//           ? json['rating']
//           : double.tryParse(json['rating']?.toString() ?? '0'),
//       price: json['price'] is double
//           ? json['price']
//           : double.tryParse(json['price']?.toString() ?? '0'),
//       isFree: json['is_free'] is bool
//           ? json['is_free']
//           : json['is_free']?.toString().toLowerCase() == 'true',
//       duration: json['duration'] is int
//           ? json['duration']
//           : int.tryParse(json['duration']?.toString() ?? '0'),
//       studentCount: json['student_count'] is int
//           ? json['student_count']
//           : int.tryParse(json['student_count']?.toString() ?? '0'),
//     );
//   }

//   Map<String, dynamic> toJson() {
//     return {
//       'id': id,
//       'title': title,
//       'cover_url': coverUrl,
//       'instructor': instructor,
//       'rating': rating,
//       'price': price,
//       'is_free': isFree,
//       'duration': duration,
//       'student_count': studentCount,
//     };
//   }
// }

// /// 资讯模型
// class NewsModel {
//   final String? id;
//   final String? title;
//   final String? summary;
//   final String? imageUrl;
//   final DateTime? publishTime;
//   final int? readCount;

//   NewsModel({
//     this.id,
//     this.title,
//     this.summary,
//     this.imageUrl,
//     this.publishTime,
//     this.readCount,
//   });

//   factory NewsModel.fromJson(Map<String, dynamic> json) {
//     return NewsModel(
//       id: json['id']?.toString(),
//       title: json['title']?.toString(),
//       summary: json['summary']?.toString(),
//       imageUrl: json['image_url']?.toString(),
//       publishTime: json['publish_time'] != null
//           ? DateTime.tryParse(json['publish_time'].toString())
//           : null,
//       readCount: json['read_count'] is int
//           ? json['read_count']
//           : int.tryParse(json['read_count']?.toString() ?? '0'),
//     );
//   }

//   Map<String, dynamic> toJson() {
//     return {
//       'id': id,
//       'title': title,
//       'summary': summary,
//       'image_url': imageUrl,
//       'publish_time': publishTime?.toIso8601String(),
//       'read_count': readCount,
//     };
//   }
// }

// /// 学习进度模型
// class StudyProgressModel {
//   final int? completedCourses;
//   final int? studyHours;
//   final int? certificates;
//   final String? currentCourse;
//   final int? progressPercent;

//   StudyProgressModel({
//     this.completedCourses,
//     this.studyHours,
//     this.certificates,
//     this.currentCourse,
//     this.progressPercent,
//   });

//   factory StudyProgressModel.fromJson(Map<String, dynamic> json) {
//     return StudyProgressModel(
//       completedCourses: json['completed_courses'] is int
//           ? json['completed_courses']
//           : int.tryParse(json['completed_courses']?.toString() ?? '0'),
//       studyHours: json['study_hours'] is int
//           ? json['study_hours']
//           : int.tryParse(json['study_hours']?.toString() ?? '0'),
//       certificates: json['certificates'] is int
//           ? json['certificates']
//           : int.tryParse(json['certificates']?.toString() ?? '0'),
//       currentCourse: json['current_course']?.toString(),
//       progressPercent: json['progress_percent'] is int
//           ? json['progress_percent']
//           : int.tryParse(json['progress_percent']?.toString() ?? '0'),
//     );
//   }

//   Map<String, dynamic> toJson() {
//     return {
//       'completed_courses': completedCourses,
//       'study_hours': studyHours,
//       'certificates': certificates,
//       'current_course': currentCourse,
//       'progress_percent': progressPercent,
//     };
//   }
// }
